// pages/menu/menu.js
const app = getApp();
const MD5 = require('../../utils/MD5');
var timestamp = Date.parse(new Date());
import CommonService from '../../utils/service/commonService.js';
import Toast from '../../miniprogram_npm/@vant/weapp/toast/toast';
const util = require('../../utils/util');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    //当前用户
    user: {},
    obj:{},
    //用户权限
    authority:null,
    //端口
    port:null,
    //设备进场选择时间
    showEnterTime: false,
    //进场时间
    enterStartTime: null,
    enterEndTime: null,
    //开始时间选择框
    showStartTime:false,
    //结束时间选择框
    showEndTime:false,
    //当前时间
    currentStart: new Date().getTime(),
    currentEnd: new Date().getTime(),
    //时间格式
    formatter (type, value) {
      if (type === 'year') {
        return `${value}年`
      } else if (type === 'month') {
        return `${value}月`
      } else if (type === 'day') {
        return `${value}日`
      } else if (type === 'hour') {
        return `${value}时`
      } else if (type === 'minute') {
        return `${value}分`
      } else if (type === 'second') {
        return `${value}秒`
      }
      return value
    },
    //设置上数频率
    showUpCount: false,
    //上数频率值
    input_upCount: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log('指令传参');
    console.log(JSON.parse(options.obj));

    this.setData({ 
      //配置主题色
      themeColor: app.globalData.themeColor,
      //获取传参
      obj: JSON.parse(options.obj),
      authority:app.globalData.authority,
      user: app.globalData.userInfo
    }) 
    
    //判断端口号
    this.commonPort();
  },

  //判断端口号
  commonPort(){
    let obj=this.data.obj;
    let portNum=obj.port;
    let localAddress=obj.localAddress;
    let port='';  

    if(portNum==8888){
      port='';
    }else if(portNum==8880 && localAddress=='47.99.141.227'){
      port=88800;
    }else{
      port=portNum;
    }
    
    this.setData({
      port: port
    }) 
  },

  //断电
  onOff(){
    let port=this.data.port;
   
    let parameter={
      imei:this.data.obj.imei
    }

    CommonService.instructSendOff(parameter,port).then(res=>{      
      Toast.success('操作完成');
    }).catch((error) => {
    })
  },

  //通电
  onNo(){
    let port=this.data.port;

    let parameter={
      imei:this.data.obj.imei
    }

    CommonService.instructSendNo(parameter,port).then(res=>{
      Toast.success('操作完成');
    }).catch((error) => {
    })
  },

  //设置震动模式
  onSetVibration(){
    let port=this.data.port;

    let parameter={
      imei:this.data.obj.imei
    }

    CommonService.setVibration(parameter,port).then(res=>{      
      Toast.success('操作完成');
    }).catch((error) => {                
    })
  },

  //设置硬件模式
  onRecoveryInit(){
    let port=this.data.port;

    let parameter={
      imei:this.data.obj.imei
    }

    CommonService.recoveryInit(parameter,port).then(res=>{      
      Toast.success('操作完成');
    }).catch((error) => {                
    })    
  },

  //显示设备进场选择时间
  onShowEnterTime(){
    this.setData({ 
		showEnterTime: true
	})  
  },

  //隐藏设备进场选择时间
  onCloseEnterTime(){
    this.setData({ 
		showEnterTime: false
	})
  },

  //确定进场
  onEnter(){
    let start=this.data.enterStartTime;
    let end=this.data.enterEndTime;

    if(start && end){
      if(end>=start){
        let param={
          imei: this.data.obj.imei,
          begin: start,
          end: end
        }        
    
        CommonService.deleteIotRunData(param).then(res=>{
          Toast.success('操作完成');
        }).catch((error) => {
        })
      }else{
        Toast.fail('开始日期不能大于结束日期');
      }
      
    }else{
      Toast.fail('请选择日期');
    }  
  },

  //开启外电检测
  onPowerCheck(){
    let port=this.data.port;

    let parameter={
      imei:this.data.obj.imei
    }

    CommonService.openPowerCheck(parameter,port).then(res=>{      
      Toast.success('操作完成');
    }).catch((error) => {                
    })
  },

  //打开静止过滤
  onStaticFilterON(){
    let port=this.data.port;

    let parameter={
      imei:this.data.obj.imei
    }

    CommonService.staticFilterON(parameter,port).then(res=>{      
      Toast.success('操作完成');
    }).catch((error) => {                
    })
  },

  //关闭静止过滤
  onStaticFilterOFF(){
    let port=this.data.port;

    let parameter={
      imei:this.data.obj.imei
    }

    CommonService.staticFilterOFF(parameter,port).then(res=>{      
      Toast.success('操作完成');
    }).catch((error) => {                
    })
  },

  //显示开始时间
  onShowStartTime(){
    this.setData({
			showStartTime: true
    })
  },

  //隐藏开始时间
  onCloseStartTime(){
    this.setData({
			showStartTime: false
    })
  },

  //确认开始时间
  onConfirmStartTime(e) {
    this.setData({
      currentStart: e.detail,
      enterStartTime: util.timeFormatDay(e.detail)
    })
    this.onCloseStartTime();
  },

  //显示结束时间
  onShowEndTime(){
    this.setData({
			showEndTime: true
    })
  },

  //隐藏结束时间
  onCloseEndTime(){
    this.setData({
			showEndTime: false
    })
  },

  //确认结束时间
  onConfirmEndTime(e) {
    this.setData({
      currentEnd: e.detail,
      enterEndTime: util.timeFormatDay(e.detail)
    })
    this.onCloseEndTime();
  },

  //显示设置上数频率
  onShowUpCount(){
    this.setData({
      showUpCount: true
    })
  },

  //隐藏设置上数频率
  onCloseUpCount(){
    this.setData({
      showUpCount: false
    })
  },

  //获取上数频率值
  getUpCountVal(e){
    this.setData({
      input_upCount: e.detail.value      
    }) 
  },

  //确定上数频率
  onConfirmUpCount(){
    let val=this.data.input_upCount;
    if(val){
      val=val.trim();
      //是否是数值
      if(/^(0|[1-9]\d*)(\.\d*)?$/.test(val) && val>=30){
        //取整
        val=parseInt(val);
        let port=this.data.port;

        let param={
          imei: this.data.obj.imei,
          instructContent: 'TIMER,'+val+','+val+'#'
        }

        CommonService.generalInstruction(param,port).then(res=>{      
          Toast.success('操作完成');
          this.onCloseUpCount();
        }).catch((error) => {
        })
      }else{
        Toast.fail('请输入大于30的数字');
      }
    }else{
      Toast.fail('请输入频率值');
    }    
  },
  
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  }
})